import instance from './request'
import { type Method } from 'axios'
import type { Data } from '@/types/api' // 引入通用响应数据类型

// 封装api函数
const request = <T>( // 通过调用request函数传入一个泛型响应体数据类型
  url: string,
  method: Method = 'GET',
  requestParameters?: object
) => {
  const parameter = method.toLocaleUpperCase() === 'GET' ? 'params' : 'data'
  // 规定返回响应体类型
  return instance.request<any, Data<T>>({
    url,
    method,
    [parameter]: requestParameters
  })
}

export default request
